<?php

/**
 * Nextcloud - nextant
 *
 * This file is licensed under the Affero General Public License version 3 or
 * later. See the COPYING file.
 *
 * @author Maxence Lange <maxence@pontapreta.net>
 * @copyright Maxence Lange 2016
 * @license GNU AGPL version 3 or any later version
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as
 * published by the Free Software Foundation, either version 3 of the
 * License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 */
namespace OCA\Nextant\Service;

use OCP\ILogger;

class MiscService
{

    private $logger;

    private $appName;

    private $debug;

    public function __construct(ILogger $logger, $appName)
    {
        $this->logger = $logger;
        $this->appName = $appName;
    }

    public function setDebug($debug)
    {
        $this->debug = $debug;
    }

    public function debug($msg)
    {
        if ($this->debug)
            $this->log($msg, 1);
    }

    public function log($message, $level = 2)
    {
        $data = array(
            'app' => $this->appName,
            'level' => $level
        );
        
        $this->logger->log($level, $message, $data);
    }

    public static function arraysIdentical($a, $b)
    {
        if ($a === null || $a === '')
            $a = array();
        if ($b === null || $b === '')
            $b = array();
        if (! is_array($a) || ! is_array($b))
            return true;
        
        sort($a);
        sort($b);
        
        return ($a == $b);
    }
}